// @ts-ignore
/* eslint-disable */
import { request } from 'umi';

/** 创建串口配置 POST /api/device/create */
export async function postApiDeviceCreate(
  params: {
    // query
    /** 网关编号 */
    gatewayId: string;
  },
  body: {
    /** 名称：驱动类型
说明：用以区分不同协议的采集


创建时指定，不可更改 */
    driveType?:
      | 'MOD_BUS_RTU'
      | 'MOD_BUS_TCP'
      | 'MOD_BUS_RTU_OVER_TCP'
      | 'DLT645_1997'
      | 'DLT645_2007'
      | 'DATABASE'
      | 'HOST_LINK'
      | 'FINS_COM';
    /** 名称：串口号
说明：整型枚举值
COM1(0), COM2(1), COM3(2), COM4(3) */
    serialport?: number;
    /** 名称：采集间隔(毫秒)
说明：两次采集间的时间 */
    samplingInterval?: number;
    /** 名称：采集超时(毫秒)
说明：单次采集等待响应的时间 */
    samplingTimeout?: number;
    /** 名称：采集重试次数
说明：采集失败后，重试次数 */
    samplingRetry?: number;
    /** 名称：波特率
说明：整型枚举值
110, 300, 600, 1200, 2400,
4800, 9600, 14400, 19200, 38400,
56000, 57600, 115200, 128000, 256000 */
    baudrate?: number;
    /** 名称：数据位
说明：整型枚举值
5, 6, 7, 8 */
    dataBit?: number;
    /** 名称：停止位
说明：整型枚举值
1(1), 2(2), 1.5(3) */
    stopBit?: number;
    /** 名称：校验类型
说明：整型枚举值
无(0), 奇(1), 偶(2), Mark(3), Space(4) */
    parity?: 'NONE' | 'ODD' | 'EVEN' | 'MARK' | 'SPACE';
  },
  options?: { [key: string]: any },
) {
  return request<{
    id?: number;
    gatewayId?: string;
    driveType?:
      | 'MOD_BUS_RTU'
      | 'MOD_BUS_TCP'
      | 'MOD_BUS_RTU_OVER_TCP'
      | 'DLT645_1997'
      | 'DLT645_2007'
      | 'DATABASE'
      | 'HOST_LINK'
      | 'FINS_COM';
    serialport?: number;
    samplingInterval?: number;
    samplingTimeout?: number;
    samplingRetry?: number;
    baudrate?: number;
    dataBit?: number;
    stopBit?: number;
    parity?: 'NONE' | 'ODD' | 'EVEN' | 'MARK' | 'SPACE';
  }>('/api/device/create', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    params: {
      ...params,
    },
    data: body,
    ...(options || {}),
  });
}

/** 查找串口配置 GET /api/device/queryOne */
export async function getApiDeviceQueryOne(
  params: {
    // query
    /** 网关编号 */
    gatewayId: string;
    /** 类型 COM/WLAN */
    type: string;
    /** 串口号 */
    serialport: string;
  },
  options?: { [key: string]: any },
) {
  return request<{
    id?: number;
    gatewayId?: string;
    driveType?:
      | 'MOD_BUS_RTU'
      | 'MOD_BUS_TCP'
      | 'MOD_BUS_RTU_OVER_TCP'
      | 'DLT645_1997'
      | 'DLT645_2007'
      | 'DATABASE'
      | 'HOST_LINK'
      | 'FINS_COM';
    serialport?: number;
    samplingInterval?: number;
    samplingTimeout?: number;
    samplingRetry?: number;
    baudrate?: number;
    dataBit?: number;
    stopBit?: number;
    parity?: 'NONE' | 'ODD' | 'EVEN' | 'MARK' | 'SPACE';
  }>('/api/device/queryOne', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  });
}

/** 编辑串口配置 PUT /api/device/update/${param1} */
export async function putApiDeviceUpdate_id_D(
  params: {
    // path
    id: string;
    'id:/d/': string;
  },
  body: {
    /** 名称：驱动类型
说明：用以区分不同协议的采集


创建时指定，不可更改 */
    driveType?:
      | 'MOD_BUS_RTU'
      | 'MOD_BUS_TCP'
      | 'MOD_BUS_RTU_OVER_TCP'
      | 'DLT645_1997'
      | 'DLT645_2007'
      | 'DATABASE'
      | 'HOST_LINK'
      | 'FINS_COM';
    /** 名称：串口号
说明：整型枚举值
COM1(0), COM2(1), COM3(2), COM4(3) */
    serialport?: number;
    /** 名称：采集间隔(毫秒)
说明：两次采集间的时间 */
    samplingInterval?: number;
    /** 名称：采集超时(毫秒)
说明：单次采集等待响应的时间 */
    samplingTimeout?: number;
    /** 名称：采集重试次数
说明：采集失败后，重试次数 */
    samplingRetry?: number;
    /** 名称：波特率
说明：整型枚举值
110, 300, 600, 1200, 2400,
4800, 9600, 14400, 19200, 38400,
56000, 57600, 115200, 128000, 256000 */
    baudrate?: number;
    /** 名称：数据位
说明：整型枚举值
5, 6, 7, 8 */
    dataBit?: number;
    /** 名称：停止位
说明：整型枚举值
1(1), 2(2), 1.5(3) */
    stopBit?: number;
    /** 名称：校验类型
说明：整型枚举值
无(0), 奇(1), 偶(2), Mark(3), Space(4) */
    parity?: 'NONE' | 'ODD' | 'EVEN' | 'MARK' | 'SPACE';
  },
  options?: { [key: string]: any },
) {
  const { id: param0, 'id:/d/': param1, ...queryParams } = params;
  return request<{
    id?: number;
    gatewayId?: string;
    driveType?:
      | 'MOD_BUS_RTU'
      | 'MOD_BUS_TCP'
      | 'MOD_BUS_RTU_OVER_TCP'
      | 'DLT645_1997'
      | 'DLT645_2007'
      | 'DATABASE'
      | 'HOST_LINK'
      | 'FINS_COM';
    serialport?: number;
    samplingInterval?: number;
    samplingTimeout?: number;
    samplingRetry?: number;
    baudrate?: number;
    dataBit?: number;
    stopBit?: number;
    parity?: 'NONE' | 'ODD' | 'EVEN' | 'MARK' | 'SPACE';
  }>(`/api/device/update/${param1}`, {
    method: 'PUT',
    headers: {
      'Content-Type': 'application/json',
    },
    params: { ...queryParams },
    data: body,
    ...(options || {}),
  });
}
